// 控制地面的函数
import {
  getCustomProperty,
  incrementCustomProperty,
  setCustomProperty,
} from "./updateCustomProperty.js";

const SPEED = 0.05; // 地面移动量（移动量越大速度越快）
const grounds = document.querySelectorAll("[data-ground]");

// 重置地面位置
export function setupGround() {
  setCustomProperty(grounds[0], "--left", 0);
  setCustomProperty(grounds[1], "--left", 300);
}

/**
 * 修改每帧地面动画
 * @param {number} delta 每帧动画的时间差
 * @param {number} speedScale 难度系数
 */
export function updateGround(delta, speedScale) {
  grounds.forEach((ground) => {
    incrementCustomProperty(ground, "--left", delta * speedScale * SPEED * -1); // 向左移动地面

    // 当地面元素左移到-300像素时，需要把对应的地面元素重置到第二个地面元素后
    if (getCustomProperty(ground, "--left") <= -300) {
      // 因为有两个地面元素，所以长度为两个地面元素的长度
      incrementCustomProperty(ground, "--left", 600);
    }
  });
}
